with v8.Class_Value, v8.Class_Object;
package v8.Class_Number_Object is
   type Number_Object (<>) is new v8.Class_Object.Object with private;
   type Pointer is access all Number_Object;
   -- A Number object (ECMA-262, 4.3.21).

   function Create (value : double) return Pointer;

   function Number_Value (this : Number_Object) return double;
   -- Returns the Number held by the object.

   function Cast is new Ada.Unchecked_Conversion (v8.Class_Value.Pointer, Pointer);
   -- convert Value to Number_Object

private
   type Number_Object is new v8.Class_Object.Object with null record;

   pragma Import (CPP, Create, "_ZN2v812NumberObject3NewEd");
   pragma Import (CPP, Number_Value, "_ZNK2v812NumberObject11NumberValueEv");
end v8.Class_Number_Object;
